<%-- 
    Document   : db1
    Created on : 2014/8/20, 上午 11:21:56
    Author     : gjun
--%>

<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%-- 
    Statement物件無法避免資料隱碼攻擊(加入單引號等使sql語法出問題)，輸入資料會成為sql語法          
    =>不要用Statement

    PreparedStatement物件可避免資料隱碼攻擊，把輸入資料當作純粹的字串，而不是sql語法
    =>PreparedStatement好用!!
--%>
<%
    //要連資料庫，先載入jar檔(MySQL JDBC Driver)
    Class.forName("com.mysql.jdbc.Driver");         //載入驅動程式(資料庫的Driver Class)
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/javadb", "root", "root");  //連線資料庫(資料庫的Database URL、帳號、密碼)
    
    String sql = "insert into person(username, tel, birthday) values(?, ?, ?)";  //資料內容用?取代
    PreparedStatement ps = con.prepareStatement(sql);   //建立時要丟入sql字串
    ps.setString(1, "tom's cat");           //把第一個?換成字串
    ps.setString(2, "03-3333333");          //把第二個?換成字串
    ps.setString(3, "1999/09/09");          //把第三個?換成字串
    
    System.out.println(sql);
    int x = ps.executeUpdate();         //執行sql語法(新增、修改、刪除都是用這個方法，查詢是用另一個方法)
    ps.close();
    %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%= x %>
    </body>
</html>
